﻿// Decompiled with JetBrains decompiler
// Type: UnityEngine.ScreenShimBase
// Assembly: UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: E6AE6B5A-2752-4B07-9528-C8B77C62CE79
// Assembly location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll
// XML documentation location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.xml

using System;
using System.Collections.Generic;

#nullable disable
namespace UnityEngine
{
  internal class ScreenShimBase : IDisposable
  {
    public void Dispose() => ShimManager.RemoveShim(this);

    public bool IsActive() => ShimManager.IsShimActive(this);

    public virtual int width => EditorScreen.width;

    public virtual int height => EditorScreen.height;

    public virtual float dpi => EditorScreen.dpi;

    public virtual Resolution currentResolution => EditorScreen.currentResolution;

    public virtual Resolution[] resolutions => EditorScreen.resolutions;

    public virtual void SetResolution(
      int width,
      int height,
      FullScreenMode fullscreenMode,
      int preferredRefreshRate)
    {
      EditorScreen.SetResolution(width, height, fullscreenMode, preferredRefreshRate);
    }

    public virtual bool fullScreen
    {
      get => EditorScreen.fullScreen;
      set => EditorScreen.fullScreen = value;
    }

    public virtual FullScreenMode fullScreenMode
    {
      get => EditorScreen.fullScreenMode;
      set => EditorScreen.fullScreenMode = value;
    }

    public virtual Rect safeArea => EditorScreen.safeArea;

    public virtual Rect[] cutouts => EditorScreen.cutouts;

    public virtual bool autorotateToPortrait
    {
      get => EditorScreen.autorotateToPortrait;
      set => EditorScreen.autorotateToPortrait = value;
    }

    public virtual bool autorotateToPortraitUpsideDown
    {
      get => EditorScreen.autorotateToPortraitUpsideDown;
      set => EditorScreen.autorotateToPortraitUpsideDown = value;
    }

    public virtual bool autorotateToLandscapeLeft
    {
      get => EditorScreen.autorotateToLandscapeLeft;
      set => EditorScreen.autorotateToLandscapeLeft = value;
    }

    public virtual bool autorotateToLandscapeRight
    {
      get => EditorScreen.autorotateToLandscapeRight;
      set => EditorScreen.autorotateToLandscapeRight = value;
    }

    public virtual ScreenOrientation orientation
    {
      get => EditorScreen.orientation;
      set => EditorScreen.orientation = value;
    }

    public virtual int sleepTimeout
    {
      get => EditorScreen.sleepTimeout;
      set => EditorScreen.sleepTimeout = value;
    }

    public virtual float brightness
    {
      get => EditorScreen.brightness;
      set => EditorScreen.brightness = value;
    }

    public virtual Vector2Int mainWindowPosition => EditorScreen.mainWindowPosition;

    public virtual DisplayInfo mainWindowDisplayInfo => EditorScreen.mainWindowDisplayInfo;

    public virtual void GetDisplayLayout(List<DisplayInfo> displayLayout)
    {
      EditorScreen.GetDisplayLayout(displayLayout);
    }

    public virtual AsyncOperation MoveMainWindowTo(in DisplayInfo display, Vector2Int position)
    {
      return EditorScreen.MoveMainWindowTo(in display, position);
    }
  }
}
